Some speakerphones suffer from echo. The microphone picks up sound from the speaker, and the person on the far end hears a delayed version of his voice. Different approaches have been used in attempts to reduce the echo. These approaches typically rely on digital signal processors (DSPs) or other hardware implementations so that the data streams are guaranteed to be continuous. These systems are sometimes referred to as real-time systems because they process data at the rate received. Hardware solutions (such as DSPs) to the echo problem can be expensive.
Software can be used to implement echo cancellation systems. Historically, software systems have been designed such that they are guaranteed to run fast enough to be considered real-time systems. That is, the software environment is controlled sufficiently enough to guarantee that interrupts and other high priority tasks do not interfere with the real-time operation.
Echo cancellation systems using a general purpose operating system (OS) running on a PC could save costs, but because of real-time data delivery errors, can suffer from performance problems. When real-time data delivery errors occur, adaptive filters in echo cancellation systems can diverge and take a significant amount of time to reconverge. This makes the implementation of echo cancellation systems in computers that cannot guarantee uninterrupted real-time operation problematic.
For the reasons stated above, and for other reasons stated below which will become apparent to those skilled in the art upon reading and understanding the present specification, there is a need in the art for a method and apparatus to efficiently cancel echos when the continuity of data streams cannot be guaranteed.